Binding data between small ligands and macromolecules and between larger molecules such as proteins and DNA have the potential of revealing important structural details when the process is cooperative. We have analyzed protein-DNA reactions where the number of sites is relatively small and have related the binding isotherms to important structural changes which have occurred in the binding reaction. When the number of binding sites is large - as occurs in the binding of small ligands and proteins to a DNA lattice, formulation of the problem becomes very difficult. Data in the literature have been analyzed with the application of limiting assumptions. We have developed a set of algorithms to attack this problem yielding exact solutions. Our formalism has been applied to the binding of the gene 32 protein to poly(rA) where we show that the cooperativity may arise from initial distortion of the DNA in the early stages of binding. Our algorithms of a year ago have been replaced with a combinatorial approach developed in collaboration with the Physical Sciences Laboratory of DCRT. Our present algorithms have cut the computer time by a factor of over 100 making it possible to analyze systems with over 100 binding sites in reasonable lengths of time.